﻿Imports sonicERPinfo
Imports System.Data.SqlClient

Public Class UsuarioDAL
    Dim con As New conexao
    Dim dal As New DAL

    Public Function pesquisanomeusuario(ByVal tabela As sonicERPinfo.Tabelainfo) As DataView
        Dim select_ As String = "SELECT  APELIDO FROM USUARIO  WHERE NOME LIKE '%' + @APELIDO + '%' ORDER BY APELIDO ASC "
        Dim par As New ArrayList
        par.Add("@APELIDO")
        Dim entidade As New ArrayList
        entidade.Add(tabela.usuario.apelido)
        Return dal.SqlDataAdapter(select_, False, par, entidade, True)

    End Function
    Public Sub pesquisa(ByVal usuario As UsuarioInfo)
        Try





            Dim select_ As String = String.Format("SELECT id, idnivel, idusuario, nome," & vbCrLf & _
                             " email, apelido, senha, dt_cadastro, dt_ultimo_acesso, ip " & vbCrLf & _
                              " FROM usuario WHERE  apelido = @apelido AND senha = @senha")
            Dim cn As New SqlConnection(con.conexao)

            Dim cmd As New SqlCommand
            cmd.Connection = cn
            cmd.CommandText = select_
            cmd.CommandType = CommandType.Text
            cmd.Parameters.AddWithValue("@apelido", usuario.apelido)
            cmd.Parameters.AddWithValue("@senha", usuario.senha)
            cn.Open()
            Dim dr As SqlDataReader = cmd.ExecuteReader

            If dr.Read Then
                usuario.apelido1 = dr("apelido").ToString
                usuario.senha1 = dr("senha").ToString
                usuario.idnivel = Convert.ToInt32(dr("idnivel").ToString)
                usuario.id = Convert.ToInt32(dr("id").ToString)

                usuario.id = Convert.ToString(dr("id").ToString)
                usuario.nome = dr("nome").ToString
                usuario.email = dr("email").ToString
                usuario.dt_cadastro = Convert.ToDateTime(dr("dt_cadastro").ToString())


            End If
            cn.Close()
            dr.Close()
            If usuario.apelido1 <> "" Then
                Dim insert As String = "UPDATEUSUARIO"
                Dim parametro As New ArrayList
                parametro.Add("@id")
                'parametro.Add("@idnivel")
                'parametro.Add("@idusuario")
                'parametro.Add("@nome")
                'parametro.Add("@email")
                'parametro.Add("@apelido")
                'parametro.Add("@senha")
                parametro.Add("@ip")

                Dim entidade As New ArrayList
                entidade.Add(usuario.id)
                'entidade.Add(usuario.idnivel)
                'entidade.Add(usuario.id)
                'entidade.Add(usuario.nome)
                'entidade.Add(usuario.email)
                'entidade.Add(usuario.apelido1)
                'entidade.Add(usuario.senha1)
                entidade.Add(usuario.ip)

                dal.SQLExecuteNonQuery(insert, True, parametro, entidade, True)


            End If
        Catch ex As Exception
            Throw New Exception(ex.Message)
        End Try
    End Sub

    Public Function lista(ByVal usuario As UsuarioInfo)
        Try

      
            Dim select_ As String = "SELECTUSUARIO"
            Dim parameter As New ArrayList
            parameter.Add("@usuario")
            parameter.Add("@dtinicio")
            parameter.Add("@dtfim")
            Dim entidade As New ArrayList
            entidade.Add(usuario.apelido)
            entidade.Add(usuario.dtinicio.Value.Date.ToString("yyyy/MM/dd HH:mm:ss"))
            entidade.Add(usuario.dt_fim.Value.Date.ToString("yyyy/MM/dd HH:mm:ss"))
            ' entidade.Add(usuario.dtinicio)
            'entidade.Add(usuario.dt_fim)
                
            Return dal.SqlDataAdapter(select_, True, parameter, entidade, True)
        Catch ex As Exception
            Throw New Exception(ex.Message)
        End Try
    End Function

    Public Sub insert(ByVal entidade As UsuarioInfo)
        Try

      
            Dim select_ As String = "INSERTUSUARIO"
            Dim parameter As New ArrayList
            parameter.Add("@idnivel")
            parameter.Add("@idusuario")
            parameter.Add("@nome")
            parameter.Add("@email")
            parameter.Add("apelido")
            parameter.Add("@senha")
            parameter.Add("dt_cadastro")
            parameter.Add("@ip")
            Dim enti As New ArrayList
            enti.Add(entidade.idnivel)
            enti.Add(entidade.idusuario)
            enti.Add(entidade.nome)
            enti.Add(entidade.email)
            enti.Add(entidade.apelido)
            enti.Add(entidade.senha)
            enti.Add(entidade.dt_cadastro.Value.Date.ToString("yyyy/MM/dd HH:mm:ss"))
            ' enti.Add(entidade.dt_cadastro)
            enti.Add(entidade.ip)
            dal.SQLExecuteNonQuery(select_, True, parameter, enti, True)
        Catch ex As Exception
            ''If ex.Message = "Este Cadastro Ja Existe Consulte sua Lista" Then
            ''Throw New Exception("Ja Existe um Usuario com Esse Email ou   Login")
            Throw New Exception(ex.Message)
            '' End If
        End Try
    End Sub

    Public Sub alterarsenha(ByVal entidade As UsuarioInfo)
        Try

        
            Dim select_ As String = "UPDATEUSUARIOSENHA"
            Dim parameter As New ArrayList
            parameter.Add("@id")
            'parameter.Add("@idnivel")
            'parameter.Add("@idusuario")
            'parameter.Add("@nome")
            'parameter.Add("@email")
            'parameter.Add("apelido")
            parameter.Add("@senha")
            'parameter.Add("dt_cadastro")
            parameter.Add("@ip")
            Dim enti As New ArrayList
            enti.Add(entidade.id)
            'enti.Add(entidade.idnivel)
            'enti.Add(entidade.idusuario)
            'enti.Add(entidade.nome)
            'enti.Add(entidade.email)
            'enti.Add(entidade.apelido)
            enti.Add(entidade.senha)
            ' enti.Add(entidade.dt_cadastro.Value.Date.ToString("yyyy/MM/dd HH:mm:ss"))
            enti.Add(entidade.ip)

            dal.SQLExecuteNonQuery(select_, True, parameter, enti, True)
        Catch ex As Exception
            Throw New Exception(ex.Message)
        End Try
    End Sub

    Public Function getusuario(ByVal tabela As UsuarioInfo) As DataTable
        Dim select_ As String = "SELECT * FROM  Usuario WHERE apelido = @nome"
        Dim parameter As New ArrayList
        parameter.Add("@nome")
        Dim entidade As New ArrayList
        entidade.Add(tabela.nome)
        Dim dt As DataTable
        Dim dv As New DataView
        dv = dal.SqlDataAdapter(select_, False, parameter, entidade, True)
        dt = dv.ToTable()


        Return dt
    End Function
    Public Function getusuario_historico() As DataTable
        Dim SELECT_ As String = "SELECT * FROM Usuario_historico"
        Dim dv As DataView
        Dim dt As DataTable
        dv = dal.SqlDataAdapter(SELECT_, False, Nothing, Nothing, False)
        dt = dv.ToTable()
        Return dt
    End Function

    Public Function getusuario_historico1(ByVal valor As String) As DataTable

        Dim select_ As String = "  SELECT   * FROM  Usuario_historico" +
  " WHERE CAST(id AS VARCHAR(50)) IN(" + valor + ")"

        Dim dv As DataView
        Dim dt As DataTable
        dv = dal.SqlDataAdapter(select_, False, Nothing, Nothing, False)
        dt = dv.ToTable()
        Return dt
    End Function

    Protected Overrides Sub Finalize()
        MyBase.Finalize()
    End Sub

    Public Sub New()

    End Sub
End Class
